package edu.hawaii.client;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * A bean class to access the data from the 
 * dbo.ReportServer_EnrollmentManagement_ViewAvailableSeatsBySection_proc 
 * stored procedure by placing results into this class object done by ObjectFactory.java
 * on the server side code.
 * 
 * @author Kiet Huynh
 * @author brandon lee
 */
public class AvailableSeatsBySection implements IsSerializable {
  
  // all instance variable names in this class don't follow the Java naming 
  // conventions.  They are in uppercase.  I did this because all the column 
  // names in the database are all uppercase.  When converting these database 
  // records to the Bean object, if the case of the variable don't match, it 
  // doen't work.
  private String COURSENAME;
  private String CRN;
  private String SECTION;
  private String COURSENUMBER;
  private String COURSEDESCRIPTION;
  private String COURSECREDITS;
  private String COLLEGE;
  private String TOTALMAXENROLLMENT;
  private String TOTALCURRENTENROLLMENT;
  private String TOTALSEATAVAILABLE;
  private String TOTALSEATOVERSOLD;
  private String PERCENTFULL;
  private String COURSESTATUS;
  private String SEMESTER;
  private String SSH;
  private String TIMELOCATION;
  private String DEPARTMENT;
  private String DIVISION;
  private String TIMEDAY; //CHNAGE LATTER TO BOTH TIME AND DAY?
  private String INSTRUCTOR;
  //private String MAXROOMCAPACITY;//NO NEED
  private String LOCATION;
  private String TIME;
  private String DAYS;
  private String ATTRIBUTE;
  
  /**
   * Sets the name of a course.
   * @param newCourseName The new name of the course.
   */
  public void setCOURSENAME(String newCourseName) {
    this.COURSENAME = newCourseName;
  }
  
  /**
   * Returns the name of a course using the University of Hawaii naming
   * convention.
   * @return The name of a course such as ICS, MATH.
   */
  public String getCOURSENAME() {
    return this.COURSENAME;
  }
  
  /**
   * Sets the course code.
   * @param newCRN The new code of the course in 5-digit format such as 34577
   */
  public void setCRN(String newCRN) {
    this.CRN = newCRN;
  }
  
  /**
   * Returns the course code.  It is a five-digit number.
   * @return The Course code as a five-digit string.
   */
  public String getCRN() {
    return this.CRN;
  }
  
  /**
   * Sets the section number of a course.
   * @param newSECTION The new section number of the course in 3-digit format such as 003.
   */
  public void setSECTION(String newSECTION) {
    this.SECTION = newSECTION;
  }
  
  /**
   * Returns the section number of a course. It is a three-digit number 
   * such as 001, 002. 
   * @return The section number as a three-digit string.
   */
  public String getSECTION() {
    return this.SECTION;
  }
  
  /**
   * Sets the number of the course.
   * @param newCOURSENUMBER The new number of the course.
   */
  public void setCOURSENUMBER(String newCOURSENUMBER) {
    this.COURSENUMBER = newCOURSENUMBER;
  }
  
  /**
   * Returns the course number of a course.  It is a three-digit number.
   * If the course is ICS141, the course number is 141.
   * @return The course number as a three-digit string.
   */
  public String getCOURSENUMBER() {
    return this.COURSENUMBER;
  }
  
  /**
   * Sets the description of the course.
   * @param newCOURSEDESCRIPTION The new description of the course.
   */
  public void setCOURSEDESCRIPTION(String newCOURSEDESCRIPTION) {
    this.COURSEDESCRIPTION = newCOURSEDESCRIPTION;
  }
  
  /**
   * Returns a short discription of a course. For example, if the course is 
   * MATH140, the description is Precalculus.
   * @return A short discription of a course.
   */
  public String getCOURSEDESCRIPTION() {
    return this.COURSEDESCRIPTION;
  }
  
  /**
   * Sets the number of credits of a course.
   * @param newCOURSECREDITS The new number of credits.
   */
  public void setCOURSECREDITS(String newCOURSECREDITS) {
    this.COURSECREDITS = newCOURSECREDITS;
  }
  /**
   * Returns the number of credits of a course.
   * @return The number of credits of a course.
   */
  public String getCOURSECREDITS() {
    return this.COURSECREDITS;
  }
  
  /**
   * Sets the name of the college at which the course is offered.  
   * For example College of Arts and Science (10).
   * @param newCOLLEGE The new college name.
   */
  public void setCOLLEGE(String newCOLLEGE) {
    this.COLLEGE = newCOLLEGE;
  }
  
  /**
   * Returns the name of the college at which the course is offered.  
   * For example College of Arts and Science (10).
   * @return The name of the college.
   */
  public String getCOLLEGE() {
    return this.COLLEGE;
  }
  
  /**
   * Sets the maximum enrollment of a course. 
   * @param  newTOTALMAXENROLLMENT The maximum enrollment of the course.
   */
  public void setTOTALMAXENROLLMENT(String newTOTALMAXENROLLMENT) {
    this.TOTALMAXENROLLMENT = newTOTALMAXENROLLMENT;
  }
  
  /**
   * Returns the maximum enrollment of the course. 
   * @return The maximum enrollment of the course.
   */
  public String getTOTALMAXENROLLMENT() {
    return this.TOTALMAXENROLLMENT;
  }
  
  /**
   * Sets the current enrollment of a course.
   * @param newTOTALCURRENTENROLLMENT The new current enrollment of the course.
   */
  public void setTOTALCURRENTENROLLMENT (String newTOTALCURRENTENROLLMENT) {
    this.TOTALCURRENTENROLLMENT = newTOTALCURRENTENROLLMENT;
  }
  
  /**
   * Returns the current enrollment of the course.
   * @return The current enrollment of the course.
   */
  public String getTOTALCURRENTENROLLMENT() {
    return this.TOTALCURRENTENROLLMENT;
  }
  
  /**
   * Sets the total seat available of the course.
   * @param newTOTALSEATAVAILABLE The new seat available.
   */
  public void setTOTALSEATAVAILABLE(String newTOTALSEATAVAILABLE) {
    this.TOTALSEATAVAILABLE = newTOTALSEATAVAILABLE;
  }
  /**
   * Returns the total seat available of the course.
   * @return The total seat available of the course.
   */
  public String getTOTALSEATAVAILABLE() {
    return this.TOTALSEATAVAILABLE;
  }
  
  /**
   * Sets the total seat that exceeds the total maximum enrollment.
   * @param newTOTALSEATOVERSOLD The new oversold seat.
   */
  public void setTOTALSEATOVERSOLD(String newTOTALSEATOVERSOLD) {
    this.TOTALSEATOVERSOLD = newTOTALSEATOVERSOLD;
  }
  /**
   * Returns the total seat exceeding the total maximum enrollment.
   * @return The total seat exceeding the total maximum enrollment.
   */
  public String getTOTALSEATOVERSOLD() {
    return this.TOTALSEATOVERSOLD;
  }
  
  /**
   * Sets the percentage of current enrollment over the maximum enrollment.
   * @param newPERCENTFULL The new percentage of current enrollment over the maximum enrollment.
   */
  public void setPERCENTFULL(String newPERCENTFULL) {
    this.PERCENTFULL = newPERCENTFULL;
  }
  /**
   * Returns the percentage of current enrollment over the maximum enrollment.
   * @return The percentage of current enrollment over the maximum enrollment.
   */
  public String getPERCENTFULL() {
    return this.PERCENTFULL;
  }
  
  /**
   * Sets the current status of the course.  For example, Active or Cancel.
   * @param newCOURSESTATUS The new status of the course.
   */
  public void setCOURSESTATUS(String newCOURSESTATUS) {
    this.COURSESTATUS = newCOURSESTATUS;
  }
  /**
   * Returns the current status of the course.  For example, Active or Cancel.
   * @return The current status of the course.
   */
  public String getCOURSESTATUS() {
    return this.COURSESTATUS;
  }
  
  /**
   * Sets the semester of the course such as Spring 2007.
   * @param newSEMESTER The new semester.
   */
  public void setSEMESTER(String newSEMESTER) {
    this.SEMESTER = newSEMESTER;
  }
  /**
   * Returns the semester of the course such as Spring 2007.
   * @return The semester of the course.
   */
  public String getSEMESTER() {
    return this.SEMESTER;
  }
  
  /**
   * Sets the SSH of the course.
   * @param newSSH The new SSH.
   */
  public void setSSH(String newSSH) {
    this.SSH = newSSH;
  }
  /**
   * Not sure what SSH is for now.
   * @return The SSH of the course.
   */
  public String getSSH() {
    return this.SSH;
  }
  
  /**
   * Sets the meeting times and location of the course, also includes
   * the room capacity and the instructor name.  For example,
   * TR 1630 to 1745 location KUY 210 (Max Rm. capacity 45)(Instr: Gregory
   * Schaper). 
   * @param newTIMELOCATION The new information.
   */
  public void setTIMELOCATION(String newTIMELOCATION) {
    this.TIMELOCATION = newTIMELOCATION;
  }
  
  /**
   * Returns the meeting times and location of the course, also includes
   * the room capacity and the instructor name.  For example,
   * TR 1630 to 1745 location KUY 210 (Max Rm. capacity 45)(Instr: Gregory
   * Schaper). 
   * @return The meeting times and location of the course.
   */
  public String getTIMELOCATION() {
    return this.TIMELOCATION;
  }
  
  /**
   * Sets the department to which the course belongs such as ICS, MATH.
   * @param newDEPARTMENT The new department.
   */
  public void setDEPARTMENT(String newDEPARTMENT) {
    this.DEPARTMENT = newDEPARTMENT;
  }
  /**
   * Returns the department to which the course belongs such as ICS, MATH.
   * @return The department to which the course belongs.
   */
  public String getDEPARTMENT() {
    return this.DEPARTMENT;
  }
  
  /**
   * Sets the division of the course.
   * @param newDIVISION The new division.
   */
  public void setDIVISION(String newDIVISION) {
    this.DIVISION = newDIVISION;
  }
  
  /**
   * Not sure what the division is.  However, mostly it is ASNS.
   * @return The division.
   */
  public String getDIVISION() {
    return this.DIVISION;
  }
  
  /**
   * Returns Instructor.
   * @return The instructor of the course.
   */
  public String getINSTRUCTOR() {
    return this.INSTRUCTOR;
  }
  
  /**
   * Sets the Instructor.
   * @param newINSTRUCTOR the new instructor of the course.
   */
  public void setINSTRUCTOR(String newINSTRUCTOR) {
    //TimeLocationParse tlp = new TimeLocationParse(this.TIMELOCATION);
    
    this.INSTRUCTOR = newINSTRUCTOR;
    //this.INSTRUCTOR = tlp.getInstructor();
  }
  
  /**
   * Returns Location.
   * @return The location of the course.
   */
  public String getLOCATION() {
    return this.LOCATION;
  }
  
  /**
   * Sets the Instructor.
   * @param newLOCATION The new LOCATION of the course.
   */
  public void setLOCATION(String newLOCATION) {
    this.LOCATION = newLOCATION;
  }
  
  /**
   * Returns Day and Time.
   * @return The day and time of class.
   */
  public String getTIMEDAY() {
    return this.TIMEDAY;
  }
  
  /**
   * Sets the Time and DAY.
   * @param newTIMEDAY The new The day and time of class.
   */
  public void setTIMEDAY(String newTIMEDAY) {
    this.TIMEDAY = newTIMEDAY;
  }
  /**
   * Returns Time of class.
   * @return The time of class.
   */
  public String getTIME() {
    return this.TIME;
  }
  
  /**
   * Sets the Time.
   * @param newTIME The new time of class.
   */
  public void setTIME(String newTIME) {
    this.TIME = newTIME;
  }
  
  /**
   * Returns Day and Time.
   * @return The day and time of class.
   */
  public String getDAYS() {
    return this.DAYS;
  }
  
  /**
   * Sets the DAYS.
   * @param newDAYS The day(s) and of class.
   */
  public void setDAYS(String newDAYS) {
    this.DAYS = newDAYS;
  }
  
  /**
   * Returns the attribute of the course.
   * @return The attribute of class returns " " if none.
   */
  public String getATTRIBUTE() {
    return this.ATTRIBUTE;
  }
  
  /**
   * Sets the ATTRIBUTE.
   * @param newATTRIBUTE The ATTRIBUTE of class.
   */
  public void setATTRIBUTE(String newATTRIBUTE) {
    this.ATTRIBUTE = newATTRIBUTE;
  }
}
